home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 1
/
Meeting Pearls Vol 1 (1994).iso
/
pastex
/
rexx
/
start_tex.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1991-07-27
|
3KB
|
133 lines
/*RX
* AREXX Name:Start_TeX.rexx Version:1.41 Date:27-Jul-91
*
This AREXX script compiles the files given in argument, using an
optional format argument. All in all, it handles as if you had called
virtex directly (except if you want to pass virtex some options). As
the server is called, any virtex error messages will go to the server
window, not the CLI. A '?' formatname will interactively ask for the
format to use.
*
AUTHOR:
* J\"org H\"ohle, March 91
* Revised: 21 April 1991
BUGS:
virtex doesn't like filenames with blanks (and ARexx parses them
hardly too), so avoid them in file, directory *and* device names.
*
does not like names relative to the local root, like ":foo/bar"
*
FILES:
ENV:TEXFORMAT: default format used
REXX:namestruc
*
*/
OPTIONS RESULTS
SIGNAL ON BREAK_C
SIGNAL ON BREAK_D
portname = 'Start_TeX'
/**
TeXRexx = "TeX:rexx/" / * where our scripts stay * /
namestruc= TeXRexx||'namestruc'
**/
script = 'TeX-server.rexx' /* no path required, message only */
IF "" = GETCLIP("TEXQUERY") THEN askformat = 0
ELSE askformat = 1 /* ask interactively for format name */
PARSE ARG format fullname
IF "?" = format THEN DO
askformat= 1
format = ""
END
ELSE IF '&' = LEFT(format,1) THEN
format = SUBSTR(format,2)
ELSE DO
PARSE ARG fullname /* no format given */
format = ""
END
fullname = STRIP(fullname)
/**
namestruc fullname
IF 0~= RC THEN DO
say "Function "namestruc" not found!"
EXIT 10
END
ELSE PARSE VALUE RESULT WITH ivol idirs ibase .
**/
PARSE VALUE namestruc(fullname) WITH ivol idirs ibase .
IF "" == SUBSTR(fullname, 1+ivol+idirs+ibase) THEN
fullname = fullname||".tex" /* supply a default extension */
IF 0 = ivol THEN DO
direc = PRAGMA('d')
IF RIGHT(direc,1)~='/' & RIGHT(direc,1)~=':' THEN direc=direc||'/'
fullname = direc||fullname
DROP direc
END
DROP ivol idirs ibase
IF ~EXISTS(fullname) THEN DO
say 'Sorry, cannot find 'fullname'!'
EXIT 10
END
IF (SHOW('P', portname)) THEN DO
envformat = mygetenv("TEXFORMAT")
IF "" = format THEN DO
format = envformat
IF askformat | "" = envformat THEN DO
IF "" = format THEN format = 'plain'
OPTIONS PROMPT 'Which format to use (default 'format')? '
PARSE PULL nformat .
OPTIONS PROMPT
IF "" ~= nformat THEN format = nformat
END /* askformat */
END /* !format */
/* If the server is already busy with some compilation, this will
wait till compilation finishes, thus may take a long time. */
say 'calling TeX server with format 'format' and file 'fullname'.'
if format ~= envformat THEN CALL mysetenv("TEXFORMAT",format)
ADDRESS VALUE portname
'compile' format fullname
say 'TeX server called for file 'fullname'.'
END
ELSE DO
/* The TeX server must be started first */
say 'The TeX server 'script' is not running !'
EXIT 5
END
break_c:
break_d:
EXIT
mygetenv: procedure /* when will ARexx supply GetEnv/SetEnv ? */
PARSE ARG name
IF open(TEMPFILE,"ENV:"||name,'r') THEN DO
gives = readln(TEMPFILE)
CALL close TEMPFILE
END
ELSE gives = ""
RETURN gives
mysetenv: procedure
PARSE ARG name,content
ADDRESS COMMAND "SetEnv" name content
RETURN